(function($){$.pager=function($parameters){
    //#必要条件检测。
    if(!$parameters.data){   //分页数据。
        return;
    }
    if(!$parameters.link){   //链接数据。
        return;
    }
    if(!$parameters.button){ //按钮。
        return;
    }
    //#处理分页数据。
    var rowCount=$parameters.data.rowCount;          //页和
    if(isNaN(rowCount)){
        return;
    }
    var pageCount=$parameters.data.pageCount;         //页数
    if(isNaN(pageCount)){
        return;
    }
    var pageSize=$parameters.data.pageSize;           //页位
    if(isNaN(pageSize)){
        return;
    }
    var pagination=$parameters.data.pagination;       //页码
    if(isNaN(pagination)){
        pagination=1;
    }
    else{
        pagination=Number(pagination);
        if(pagination<1){
            pagination=1;
        }
    }
    //#处理链接数据。
    var PROTOCOL_COMMON='common';
    var PROTOCOL_TRYPHP_COMMON='tryPHPCommon';
    var PROTOCOL_TRYPHP_STATIC='tryPHPStatic';
    var protocolType='common';
    var protocol=$parameters.link.protocol;           //协议
    if(protocol){
        var isProtocol=(protocol===PROTOCOL_COMMON);
            isProtocol=(isProtocol||protocol===PROTOCOL_TRYPHP_COMMON);
            isProtocol=(isProtocol||protocol===PROTOCOL_TRYPHP_STATIC);
        if(isProtocol){
            if(protocol===PROTOCOL_TRYPHP_COMMON||protocol===PROTOCOL_TRYPHP_STATIC){
                protocolType='tryPHP';
            }
        }
        else{
            protocol=PROTOCOL_COMMON;
        }
    }
    else{
        protocol=PROTOCOL_COMMON;
    }
    var application=$parameters.link.application;      //应用程序
    if(!application){
        if(protocolType==='tryPHP'){
            return;
        }
    }
    var controller=$parameters.link.controller;        //控制器
    if(!controller){
        if(protocol===PROTOCOL_COMMON){
            var filename=location.href.split('?')[0];
                filename=filename.substr(filename.lastIndexOf('/')+1);
                filename=filename.replace('#','');
            controller=filename;
        }
        else{
            return;
        }
    }
    var method=$parameters.link.method;                //方法
    var mode=$parameters.link.mode;                    //tryPHP模式
    if(mode){
        if(mode===''){
            mode='class';
        }
    }
    else{
        mode='class';
    }
    var parameterName=$parameters.link.name;           //分页参数称
    if(!parameterName){
        parameterName='page';
    }
    var parameters=decodeURIComponent($parameters.link.parameters);        //参数
    if(typeof(parameters)==='string'){
        var tempObject={};
        var tempParameters=parameters.split('|');
        for(i=0;i<tempParameters.length;i++){
            if(typeof(tempParameters[i])==='string'){
                if(tempParameters[i].indexOf(':')!==-1){
                    var tempParameter=tempParameters[i].split(':');
                    var name=tempParameter[0],value=tempParameter[1];
                    tempObject[name]=value;
                }
                else{
                    return;
                }
            }
        }
        parameters=tempObject;
    }
    else{
        if(typeof(parameters)!=='object'){
            return;
        }
    }
    //#生成链接。
    var firstLink,lastLink,previousLink,nextLink,cycleLink,makeParametersPart;
    if(protocol===PROTOCOL_COMMON){
        makeParametersPart=function($link){
            var temp='';
            for(paramName in parameters){
                temp=temp+'&'+paramName+'='+(parameters[paramName]);
                //$link+='&'+paramName+'='+encodeURIComponent(parameters[paramName]);
            }
            $link+=temp;
            return $link;
        };
        //--
        firstLink=controller+'?'+parameterName+'=1';
        firstLink=(makeParametersPart(firstLink));
        //--
        lastLink=controller+'?'+parameterName+'='+pageCount;
        lastLink=makeParametersPart(lastLink);
        //--
        previousLink=controller+'?'+parameterName+'='+(pagination-1);
        previousLink=makeParametersPart(previousLink);
        //--
        nextLink=controller+'?'+parameterName+'='+(pagination+1);
        nextLink=makeParametersPart(nextLink);
    }
    else if(protocol===PROTOCOL_TRYPHP_COMMON){
    }
    else if(protocol===PROTOCOL_TRYPHP_STATIC){
    }
    //#定义标量之按钮。
    var first=$parameters.button.first,firstLinkType='link';
    var last=$parameters.button.last,lastLinkType='link';
    var previous=$parameters.button.previous,previousLinkType='link';
    var next=$parameters.button.next,nextLinkType='link';
    var cycle=$parameters.button.cycle,cycleLinkType='link';
    //--
    if(first){
        if(typeof(first)==='string'){
            first=$('#'+first);
        }
        else if(typeof(first)==='object'){
            if(typeof(first[1])){
                firstLinkType=first[1];
            }
            first=first[0];
        }
        //--
        if(firstLinkType==='link'){
            first.attr('href',firstLink);
        }
        else{
            first.attr('href','javascript:return false;');
            first.click(function(){
                window.location=firstLink;
            });
        }
    }
    //--
    if(last){
        if(typeof(last)==='string'){
            last=$('#'+last);
        }
        else if(typeof(last)==='object'){
            if(typeof(last[1])){
                lastLinkType=last[1];
            }
            last=last[0];
        }
        //--
        if(lastLinkType==='link'){
            last.attr('href',lastLink);
        }
        else{
            last.attr('href','javascript:return false;');
            last.click(function(){
                window.location=lastLink;
            });
        }
    }
    //--
    if(previous){
        if(typeof(previous)==='string'){
            previous=$('#'+previous);
        }
        else if(typeof(previous)==='object'){
            if(typeof(previous[1])){
                previousLinkType=previous[1];
            }
            previous=previous[0];
        }
        //--
        if(previousLinkType==='link'){
            previous.attr('href',previousLink);
        }
        else{
            previous.attr('href','javascript:return false;');
            previous.click(function(){
                window.location=previousLink;
            });
        }
    }
    //--
    if(next){
        if(typeof(next)==='string'){
            next=$('#'+next);
        }
        else if(typeof(next)==='object'){
            if(typeof(next[1])){
                nextLinkType=next[1];
            }
            next=next[0];
        }
        //--
        if(nextLinkType==='link'){
            next.attr('href',nextLink);
        }
        else{
            next.attr('href','javascript:return false;');
            next.click(function(){
                window.location=nextLink;
            });
        }
    }
    //--
//            if(cycle){
//                if(typeof(cycle)==='string'){
//                    cycle=$('#'+cycle);
//                }
//                else if(typeof(cycle)==='object'){
//                    if(typeof(cycle[1])){
//                        cycleLinkType=cycle[1];
//                    }
//                    cycle=cycle[0];
//                }
//            }
    //--
//            for(iPage=1;iPage<=$parameters.meta.pageCount;iPage++){
//                cycle.after('str');
//                if(cycleLinkType==='link'){
//                    $('#').live('click',function(){
//                        window.location=cycleLink;
//                    });
//                }
//                //--
//                if(iPage===$parameters.meta.pageCount){
//                    cycle.remove();
//                }
//            }
    //#显示信息。
    if($parameters.info){
        var infoRowCount=$parameters.info.rowCount;
        if(infoRowCount){
            if(typeof(infoRowCount)==='string'){
                $('#'+infoRowCount).text(rowCount);
            }
            else if(typeof(infoRowCount)==='object'){
                if(typeof(infoRowCount[1])!=='undefined'){
                      infoRowCount[0].text(infoRowCount[0].text().replace(infoRowCount[1],rowCount));
                }
            }
        }
        //--
        var infoPagination=$parameters.info.pagination;
        if(infoPagination){
            if(typeof(infoPagination)==='string'){
                $('#'+infoPagination).text(rowCount);
            }
            else if(typeof(infoPagination)==='object'){
                if(typeof(infoPagination[1])!=='undefined'){
                      infoPagination[0].text(infoPagination[0].text().replace(infoPagination[1],pagination+'/'+pageCount));
                }
            }
        }
    }
}})(jQuery);